package org.example.undo;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * 该类用来记录 两个数据操作后的结果之前的结果，用来进行回滚操作，使用内存方式实现。
 * @author Silver
 */
public class MemoryUndoLog implements Undo<BigDecimal>{

    /**
     * 定义了一个容器，用来保存每次操作之前的结果数据
     */
    private List<BigDecimal> memoryUndoLogList = new ArrayList<BigDecimal>();

    /**
     * 记录undo日志
     * @author Silver
     * @param result 操作结果前的数据
     * @return void
     */
    @Override
    public void undoLog(BigDecimal result) {
        memoryUndoLogList.add(result);
    }

    /**
     * 获取undo log的数据，方便后续进行回滚操作
     * @author Silver
     */
    @Override
    public List<BigDecimal> undo() {
        return memoryUndoLogList;
    }
}
